package com.xinruke.hostels.reservation.interfaces.dto.pms;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @author Chenry
 * @ClassName MeetingBookingInfoDto
 * @date：2019/7/20
 * @version: V1.0.0
 * @description：
 */
@ApiModel(value = "会议订单提交DTO")
@Data
public class MeetingBookingInfoDto {

    /**
     * 预订人姓名
     */

    @ApiModelProperty(value = "预订人姓名",required = true)
    @NotBlank(message = "预订人姓名不能为空")
    private String yudingrenxingming;

    /**
     * 预订人电话
     */
    @ApiModelProperty(value = "预订人电话",required = true)
    @NotBlank(message = "预订人电话不能为空")
    private String yudingrendianhua;


    @ApiModelProperty(value = "主办城市编码")
    private String zhubanchengshi;


    @ApiModelProperty(value = "主办单位", required = true)
    @NotBlank(message = "主办单位不能为空")
    private String zhubandanwei;

    /**
     * 会议级别：1一类会议；2二类会议；3三类会议；4四类会议
     */
    @ApiModelProperty(value = "会议级别：字典编码：yd.huiyixuqiubiaoshi", required = true)
    @NotNull(message = "会议级别：不能为空")
    private Byte huiyijibie;


    /**
     * 开始时间：格式YYYY-MM-DD HH:MM精确到分
     */
    @ApiModelProperty(value = "开始时间", required = true)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @NotNull(message = "开始时间不能为空")
    private Date kaishishijian;

    /**
     * 结束时间：格式YYYY-MM-DD HH:MM精确到分
     */
    @ApiModelProperty(value = "结束时间", required = true)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @NotNull(message = "结束时间不能为空")
    private Date jieshushijian;

    /**
     * 会务组入住时间
     */
    @ApiModelProperty(value = "会务组入住时间", required = true)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @NotNull(message = "会务组入住时间不能为空")
    private Date huiwuzuruzhushijian;

    /**
     * 会议类型：1会议；2写材料；3评审；4培训；5专项；6其他
     */
    @ApiModelProperty(value = "会议类型 字典编码：yd.huiyileixing", required = true)
    @NotNull(message = "会议类型不能为空")
    private Byte huiyileixing;

    /**
     * 参会人数
     */
    @ApiModelProperty(value = "参会人数", required = true)
    @NotNull(message = "参会人数不能为空")
    private Integer canhuirenshu;

    /**
     * 会议预算
     */
    @ApiModelProperty(value = "会议预算", required = true)
    @NotNull(message = "会议预算不能为空")
    private BigDecimal huiyiyusuan;


    /**
     * 总价格
     */
    @ApiModelProperty(value = "总价")
    private BigDecimal dingdanzongjia;


    @ApiModelProperty(value = "证件类型: 1身份证，2军官证", required = true)
    @NotNull(message = "证件类型不能为空")
    private Byte zhengjianleixing;

    @ApiModelProperty(value = "证件号码", required = true)
    @NotNull(message = "证件号码不能为空")
    private String zhengjianhao;

    /**
     * 备注
     */
    @ApiModelProperty("备注")
    private String beizhu;

    @ApiModelProperty(value = "需求单id", required = false)
    private Integer yudingxuqiudanId;

    @ApiModelProperty(value = "需求单号", required = false)
    private String yudingxuqiudanhao;

    @ApiModelProperty(value = "会场信息明细List",required = true)
    private List<MeetingBookingInfoHuichangDetailDto> detailList;

}
